include("global.conf");
session_start();
session_register( "fb" );
define( "toggle", "toggle" );
if (isset($_REQUEST['toggle'])) {
$toggle = $_REQUEST['toggle'];
}
class FileInfo
{
var $path;
var $name;
var $isOpen;
var $subDirs;
function FileInfo( $name, $path, $isOpen=true, $subDirs=null )
{
global $INITISOPEN;
$this->name = $name;
$this->path = $path;
$this->isOpen = $INITISOPEN;
$this->subDirs = $subDirs;
}
function addSubDir( &$subDir )
{
$this->subDirs[] = $subDir;
}
function toString()
{
$val = $this->name;
if( $this->isOpen && $this->subDirs != null )
{
foreach ($this->subDirs AS $tmpvalue)
{
$val .= "\n" . $tmpvalue->toString();
}
}
return $val;
}
function getHTML( &$flatIndex )
{
$val = "
\n";
return $val;
}
}
class FileBrowser
{
var $directory;
var $flatIndex;
function &FileBrowser() {
$this->directory = null;
}
function readDirectory( $filename, $name=null )
{
if( $name == null ){
//$name = $filename->path;
}
if( is_dir($filename->path) ){
$crntDir =& new FileInfo( $name, $filename->path );
while( false != ($entry = $filename->read()) )
{
if (substr($entry,0,1) != "." && is_dir($filename->path."/".$entry))
{
$subDirFile = &dir( $filename->path."/".$entry );
$subDir = &$this->readDirectory( $subDirFile, $entry );
if( $subDir != null )
{
$crntDir->addSubDir( $subDir );
}
$subDirFile->close();
}
}
return $crntDir;
}
else
{
$filename->close();
return null;
}
}
}
function showDirectories($path = ".") {
$_SESSION['fb']->flatIndex = null;
if( $_SESSION['fb']->directory != null )
{
print( $_SESSION['fb']->directory->getHTML( $_SESSION['fb']->flatIndex ) );
}
else
{
print("
There are no Albums!
");
}
}
function createNewFB($path)
{
if( !is_dir($path) ){
print("ERROR: \"$path\" not a valid path!");
return;
}
$filename = dir($path);
$_SESSION['fb'] = new FileBrowser();
$_SESSION['fb']->directory =& $_SESSION['fb']->readDirectory( $filename );
$_SESSION['fb']->directory->isOpen = true;
}
function doToggle()
{
global $toggle;
$toggleIndex = (int)$toggle;
if( $_SESSION['fb'] == null ){
return;
}
if( $toggle != null && $toggle != "" ) {
$_SESSION['fb']->flatIndex[$toggleIndex]->isOpen = !$_SESSION['fb']->flatIndex[$toggleIndex]->isOpen;
}
}
?>
if ( $ALLOWFOLDERREFRESH ) {
?>
}
if (!isset($_SESSION['fb']) || (isset($_REQUEST['refresh']) && $_REQUEST['refresh'] == "now")) {
createNewFB(".");
}
doToggle();
showDirectories();
?>